home *** CD-ROM | disk | FTP | other *** search
- /*
- * CREATECHECKBOX.C
- */
-
- #include "newlook.h"
-
- extern void CopyMem(APTR,APTR,ULONG);
-
- static SHORT hook_pairs[2*10]= {
- 7,5, /*.......................*/
- 10,8, /*................***....*/
- 12,8, /*...............**......*/
- 18,2, /*..............**.......*/
- 19,2, /*......***....**........*/
- 17,2, /*.......***..**.........*/
- 11,8, /*........*****..........*/
- 8,5, /*.........***...........*/
- 9,5, /*.......................*/
- 11,7 /*.......................*/
- };
-
- struct Gadget *CreateCheckbox(x,y,pn,id)
- SHORT x,y;
- BOOL pn;
- USHORT id;
- {
- struct Gadget *g;
- struct Border *b0, *b1, *c0, *c1;
-
- ULONG UserHandle= SetNewLookHandle(PRIVATE_HANDLE);
-
- if(g= (struct Gadget *)SmartAllocate(GADGETSIZE))
- {
- if(b0= CreateBorder(0,0,CHECKBOX_WIDTH,CHECKBOX_HEIGHT,FALSE))
- {
- if(b1= (struct Border *)SmartAllocate(BORDERSIZE))
- {
- if(c0= (struct Border *)SmartAllocate(BORDERSIZE))
- {
- if(c1= (struct Border *)SmartAllocate(BORDERSIZE))
- {
- CopyMem((APTR)b0, (APTR)b1, BORDERSIZE);
-
- c0->LeftEdge = 0;
- c0->TopEdge = 0;
- c0->FrontPen = 0;
- c0->BackPen = 0;
- c0->DrawMode = JAM2;
- c0->Count = 10;
- c0->XY = &hook_pairs[0];
- c0->NextBorder = b0;
-
- c1->LeftEdge = 0;
- c1->TopEdge = 0;
- c1->FrontPen = 1;
- c1->BackPen = 0;
- c1->DrawMode = JAM1;
- c1->Count = 10;
- c1->XY = &hook_pairs[0];
- c1->NextBorder = b1;
-
- g->NextGadget = (struct Gadget *)NULL;
- g->LeftEdge = x;
- g->TopEdge = y;
- g->Width = CHECKBOX_WIDTH;
- g->Height = CHECKBOX_HEIGHT;
- g->Flags = pn ? GADGHIMAGE|SELECTED : GADGHIMAGE;
- g->Activation = GADGIMMEDIATE|RELVERIFY|TOGGLESELECT;
- g->GadgetType = BOOLGADGET;
- g->GadgetRender = (APTR)c0;
- g->SelectRender = (APTR)c1;
- g->GadgetText = (struct IntuiText *)NULL;
- g->MutualExclude = (LONG)0L;
- g->SpecialInfo = (APTR)NULL;
- g->GadgetID = id;
- g->UserData = (APTR)NULL;
-
- MakePrivateHandlePublic(UserHandle);
- return g;
- }
- }
- }
- }
- }
-
- if(UserHandle != PRIVATE_HANDLE)
- {
- SmartFreeAll(PRIVATE_HANDLE);
- (void)SetNewLookHandle(UserHandle);
- }
- return (struct Gadget *)NULL;
- }
-